a cursor traverses every commit once by tenant, aggregate and version